#include <iostream>
#include <future>
#include <thread>

int Add(int x, int y)
{
    std::cout << "init add" << std::endl;
    return x + y;
}

int main()
{
    // 实例化promise对象
    std::promise<int> pro;
    // 获取关联的future对象
    std::future<int> res = pro.get_future();
    // 设置数据
    std::thread th([&pro](){
        int sum = Add(1, 2);
        pro.set_value(sum);
    });
    // 获取结果
    std::cout << res.get() << std::endl;
    th.join();
    return 0;
}